-- 发送短信验证码接口的lua脚本

-- 定义变量
local prefix = 'captcha:sms:'..KEYS[1]..':'
local code = ARGV[1]
local key_code = prefix..'code'
local key_not_allow = prefix..'not_allow'
local key_error_count = prefix..'error_count'
local interval = tonumber(ARGV[2])
local timeout = tonumber(ARGV[3])


-- 如果还没过1分钟
if redis.call('exists', key_not_allow) == 1 then
    return 1
end

-- 设置间隔获取时间
redis.call('setex', key_not_allow, interval, 1)
-- 设置错误计数为0
redis.call('setex', key_error_count, timeout, 0)
-- 设置正确的短信验证码
redis.call('setex', key_code, timeout, code)
return 0